package main

import (
	"fmt"
	"time"
)

/*
进行分为三步走
1、通过读取日志文件获取日志信息
2、处理日志信息
3、将日志信息记录在influxdb 的数据库中
*/
//日志进行结构体
type logProcess struct {
	readChan  chan string //将读取的数据放入chan
	writeChan chan string //将要写入的数据放入chan
	path      string      //文件路径
	influxDb  string      //数据库的信息
}

//从日志文件读取数据
func (l *logProcess) ReadLogFromFile() {
	mes := "我是芮旭乐"
	l.readChan <- mes
}

//处理日志信息
func (l *logProcess) Process() {
	data := <-l.readChan
	l.writeChan <- fmt.Sprintf("%s %s", time.Now().Format("2006-01-02 15:04:05"), data)
}

//将数据写入influxdb 时序数据库
func (l *logProcess) WriteLogToInfluxDb() {
	fmt.Println(<-l.writeChan)
}

func main() {

	l := &logProcess{
		readChan:  make(chan string),
		writeChan: make(chan string),
		path:      "/serr/dsfdsf",
		influxDb:  "/sads/dsfdsf",
	}
	//采用多协程 操作执行
	go l.ReadLogFromFile()
	go l.Process()
	go l.WriteLogToInfluxDb()
	time.Sleep(time.Second * 2)
}
